home *** CD-ROM | disk | FTP | other *** search
/ Nikkei Mac 20 / NIKKEI-MAC-CD-VOL-20-1998-12.ISO.7z / NIKKEI-MAC-CD-VOL-20-1998-12.ISO / デモソフトライブラリー / 日本テレコムODNスターターキット / OT⁄PPP 1.0 Install / CCL Disk / Modem CCLs / GeoPort⁄Express Modem CNG / GeoPort_Express Modem CNG next >
Text File  |  1997-05-29  |  10KB  |  505 lines

  1. !  Geoport/Express Modem CNG
  2. !    Authors:    Kris Kreutzman and Enrico Cadorin
  3. !
  4. !    Copyright:    © 1991-1996 Apple Computer, Inc.    All Rights Reserved.
  5. !
  6. !    revision history:
  7. !        v2.1    as shipped with the ARA 2.1
  8. !        1/8/97    YM    Modified string of "note", "ASK", "exit"
  9. !                    Added "X4" in modem setup commands
  10. !                    Ignore dialtone command changed "X1" to "X3"
  11. !
  12. !  'mlts' resource info for this modem:
  13. !    byte 1 == 01 -> modem HAS built-in error correction protocols
  14. !    byte 2 == 01 -> modem HAS built-in data compression protocols
  15. !    byte 3 == 65 -> max number of chars in varstr 7
  16. !    byte 4 == 65 -> max number of chars in varstr 8
  17. !    byte 5 == 65 -> max number of chars in varstr 9
  18. !    
  19. @ORIGINATE
  20. @ANSWER
  21. !
  22. ! ---- Initial modem setup ----
  23. !
  24. ! Setup the modem for the following:
  25. !   Reset to factory settings
  26. !   Standard compression/reliablity
  27. !   Lock serial port speed
  28. !   Serial port hardware handshaking, turn off software handshaking
  29. !   Verbose responces and compression/protocol results
  30. !   CONNECT returns DCE speed
  31. !   Turn off answering
  32. !   Reset or return to command mode on DTR toggle (optional)
  33. !
  34. @LABEL 3
  35. matchclr
  36. matchstr 1 4   "OK¥13¥10"
  37. matchstr 2 101 "ERROR¥13¥10"
  38. !write "AT&FE0S95=40S7=75S0=0¥13"                        <YM>
  39. write "AT&FX4E0S95=40S7=75S0=0¥13"
  40. matchread 30
  41. inctries
  42. iftries 3 101
  43. !
  44. ! Reset the Modem on setup failure
  45. !
  46. DTRClear
  47. pause 5
  48. DTRSet
  49. flush
  50. jump 3
  51. !
  52. !
  53. @LABEL 4
  54. ! Varstring 4 , reliable link protocol:
  55. !    = 0, handled by computer (ARAP)
  56. !    = 1, handled by modem (PPP)
  57. !    = 2, MNP10 protocol (Cellular protocol, no longer supported)
  58. ifstr 4 5 "1"
  59. ifstr 4 5 "2"
  60. !
  61. ! Varstring 4 == 0, turn off reliable link protocol in modem (ARAP)
  62. matchclr
  63. matchstr 1 9 "OK¥13¥10"
  64. write "AT&Q0¥13"
  65. matchread 30
  66. jump 101
  67. !
  68. !
  69. @LABEL 5
  70. ! Varstring 5, compression protocol:
  71. !    = 0, handled by computer 
  72. !    = 1, handled by modem
  73. ifstr 5 9 "1"
  74. !
  75. ! Varstring 5 == 0, turn off compression protocol in modem.
  76. matchclr
  77. matchstr 1 9 "OK¥13¥10"
  78. write "AT%C0S46=136¥13"
  79. matchread 30
  80. jump 101
  81. !
  82. !
  83. @LABEL 9
  84. ! Varstring 2, modem speaker:
  85. !    = 0, speaker off
  86. !    = 1, speaker on
  87. ifstr 2 13 "1"
  88. pause 5
  89. matchclr
  90. matchstr 1 13 "OK¥13¥10"
  91. write "ATM0¥13"
  92. matchread 30
  93. jump 101
  94. !
  95. ! Modem ready, wait for a call or originate a call
  96. !
  97. @LABEL 13
  98. ifANSWER 82
  99. !
  100. !
  101. ! ---- Originating a call ----
  102. !
  103. ! Varstring 6, dialing mode:
  104. !    = 0, normal dialing
  105. !    = 1, blind dialing
  106. !    = 2, manual dialing
  107. !    otherwise dial as ARA version 1.0
  108. ifstr 6 19 "0"
  109. ifstr 6 17 "1"
  110. ifstr 6 15 "2"
  111. !
  112. ! Dialing for ARA version 1.0
  113. note "^1 にダイアルしています..." 3
  114. write "ATD^3¥^^1¥13
  115. jump 32
  116. !
  117. @LABEL 15
  118. ! Display ASK dialog with message.  Goto label 120 if dialog canceled.
  119. ASK 2 "受話器を上げて、^1 をダイアルしてください。発信音が鳴ったら OK をクリックして、受話器を戻してください。" 120
  120. note "手動でダイアルしています..." 3
  121. ! X1 to ignore dialtone & busy, D to dial, ¥^ generates data tone
  122. !write "ATX1D¥^¥13"                                    <YM>
  123. write "ATX3D¥^¥13"
  124. jump 32
  125. !
  126. @LABEL 17
  127. note "ダイアルトーンを無視してダイアルしています..." 3
  128. matchclr
  129. matchstr 1 19 "OK¥13¥10"
  130. ! X1 to ignore dialtone & busy
  131. !write "ATX1¥13"                                    <YM>
  132. write "ATX3¥13"
  133. matchread 30
  134. jump 101
  135. !
  136. !
  137. !
  138. @LABEL 19
  139. ! Display the full dialstring contained in Varstring 1
  140. note "^1 にダイアルしています..." 3
  141. !
  142. ! Varstrings 7, 8 and 9, contain dialstring fragments
  143. !    Long phone numbers may need to be split into smaller groups
  144. !    for the modem to use
  145. !
  146. ! Varstring 3:  "p" for pulse & "t" for tone dialing
  147. ! Varstring 8 == blank (dialstring in varstring 7)
  148. ! Varstring 9 == blank (dialstring in varstrings 7 & 8)
  149. ! Otherwise (dialstring in varstrings 7, 8 & 9)
  150. ! ¥^ is added to the dialstring to force the modem to generate a data tone
  151. ifstr 8 27 " "
  152. ifstr 9 24 " "
  153. !
  154. !  Write dialstring in varstrings 7, 8 & 9
  155. matchclr
  156. matchstr 1 21 "OK¥13¥10"
  157. write "ATD^3^7;¥13"
  158. matchread 400
  159. jump 101
  160.  
  161. @LABEL 21
  162. matchclr
  163. matchstr 1 22 "OK¥13¥10"
  164. write "ATD^3^8;¥13"
  165. matchread 400
  166. jump 101
  167.  
  168. @LABEL 22
  169. write "ATD^3¥^^9¥13"
  170. jump 32
  171. !
  172. !
  173. @LABEL 24
  174. !  Write dialstring in varstrings 7 & 8
  175. matchclr
  176. matchstr 1 25 "OK¥13¥10"
  177. write "ATD^3^7;¥13"
  178. matchread 400
  179. jump 101
  180.  
  181. @LABEL 25
  182. write "ATD^3¥^^8¥13"
  183. jump 32
  184. !
  185. @LABEL 27
  186. !  Write dialstring in varstring 7
  187. write "ATD^3¥^^7¥13"
  188. !
  189. !
  190. !    ---- Connection responce ----
  191. !
  192. ! The following section will parse modem responces of two types:
  193. !   1) PROTOCOL: xxx, COMPRESSION: xxx, CONNECT xxx
  194. !   2) CONNECT xxx/ARQ/V42
  195. !
  196. @LABEL 32
  197. matchclr
  198. matchstr  1  81 "RING¥13¥10"
  199. matchstr  2  33 "NO "
  200. matchstr  3 103 "ERROR¥13¥10"
  201. matchstr  4 104 "BUSY¥13¥10"
  202. matchstr  5 106 "MODEM IN USE¥13¥10"
  203. matchstr  6 107 "DIALING DISABLED¥13¥10"
  204. matchstr  7 108 "BLACKLISTED NUMBER¥13¥10"
  205. matchstr  8 109 "LINE CURRENT DETECTED¥13¥10"
  206. matchstr  9 111 "FORBIDDEN NUMBER¥13¥10"
  207. matchstr 10 113 "UNKNOWN COUNTRY CODE¥13¥10"
  208. matchstr 11  34 "CONNECT "
  209. matchstr 12  60 "PROTOCOL: "
  210. matchstr 13  61 "COMPRESSION: "
  211. matchread 700
  212. ifANSWER 32
  213. jump 105
  214. !
  215. !  Special parsing of "NO xxx" to keep the number of matchstr above
  216. !  below 16 for ARA 1.0 compatability
  217. !
  218. @LABEL 33
  219. matchclr
  220. matchstr  1 102 "DIALTONE¥13¥10"
  221. matchstr  2 103 "CARRIER¥13¥10"
  222. matchstr  3 105 "ANSWER¥13¥10"
  223. matchstr  4 110 "LINE CURRENT¥13¥10"
  224. matchstr  5 112 "DAA¥13¥10"
  225. matchread 10
  226. jump 32
  227.  
  228. !  Parse the speed of connect result codes
  229. !  2400 and 4800 have two entries each
  230. !  to distinguish them from 24000 and 48000
  231. !
  232. @LABEL 34
  233. matchclr
  234. matchstr  1 40 "2400¥13"
  235. matchstr  2 40 "2400/"
  236. matchstr  3 41 "4800¥13"
  237. matchstr  4 41 "4800/"
  238. matchstr  5 42 "7200"
  239. matchstr  6 43 "9600"
  240. matchstr  7 44 "12000"
  241. matchstr  8 45 "14400"
  242. matchstr  9 46 "16800"
  243. matchstr 10 47 "19200"
  244. matchstr 11 48 "21600"
  245. matchstr 12 49 "24000"
  246. matchstr 13 50 "26400"
  247. matchstr 14 51 "28800"
  248. matchread 30
  249. jump 59
  250. !
  251. ! -- Connection rates --
  252. ! CommunicatingAt informs ARA of the raw modem to modem
  253. ! connection speed.
  254. !
  255. @LABEL 40
  256. note "2400 bps で接続しています..." 2
  257. CommunicatingAt 2400
  258. jump 70
  259. !
  260. @LABEL 41
  261. note "4800 bps で接続しています..." 2
  262. CommunicatingAt 4800
  263. jump 70
  264. !
  265. @LABEL 42
  266. note "7200 bps で接続しています..." 2
  267. CommunicatingAt 7200
  268. jump 70
  269. !
  270. @LABEL 43
  271. note "9600 bps で接続しています..." 2
  272. CommunicatingAt 9600
  273. jump 70
  274. !
  275. @LABEL 44
  276. note "12400 bps で接続しています..." 2
  277. CommunicatingAt 12400
  278. jump 70
  279. !
  280. @LABEL 45
  281. note "14400 bps で接続しています..." 2
  282. CommunicatingAt 14400
  283. jump 70
  284. !
  285. @LABEL 46
  286. note "16800 bps で接続しています..." 2
  287. CommunicatingAt 16800
  288. jump 70
  289. !
  290. @LABEL 47
  291. note "19200 bps で接続しています..." 2
  292. CommunicatingAt 19200
  293. jump 70
  294. !
  295. @LABEL 48
  296. note "21600 bps で接続しています..." 2
  297. CommunicatingAt 21600
  298. jump 70
  299. !
  300. @LABEL 49
  301. note "24000 bps で接続しています..." 2
  302. CommunicatingAt 24000
  303. jump 70
  304. !
  305. @LABEL 50
  306. note "26400 bps で接続しています..." 2
  307. CommunicatingAt 26400
  308. jump 70
  309. !
  310. @LABEL 51
  311. note "28800 bps で接続しています..." 2
  312. CommunicatingAt 28800
  313. jump 70
  314. !
  315. @LABEL 59
  316. note "未知のレートで接続しています..." 2
  317. jump 70
  318. !
  319. ! Parse the remainder of the PROTOCOL result
  320. !
  321. @LABEL 60
  322. matchclr
  323. matchstr 1 62  "LAP-M"
  324. matchstr 2 62  "MNP"
  325. matchstr 3 62  "ALT"
  326. matchstr 4 32  "¥13"
  327. matchread 10
  328. jump 32
  329. !
  330. ! Parse the remainder of the COMPRESION result
  331. !
  332. @LABEL 61
  333. matchclr
  334. matchstr 1 67  "V.42BIS"
  335. matchstr 2 67  "MNP5"
  336. matchstr 3 67  "CLASS 5"
  337. matchstr 4 32  "¥13"
  338. matchread 10
  339. !
  340. !
  341. ! -- Modem error correction link negotiation --
  342. ! Userhook 2 informs ARA that a modem-to-modem error
  343. ! correcting protocol has been negotiated
  344. !
  345. !
  346. @LABEL 62
  347. note "モデムのリンクが確実に成立しました。" 2
  348. userhook 2
  349. jump 32
  350. !
  351. !
  352. ! -- Compression negotiation --
  353. ! Userhook 3 informs ARA that a modem-to-modem compression
  354. ! protocol has been negotiated
  355. !
  356. @LABEL 67
  357. note "モデムによる圧縮を開始しました。" 2
  358. userhook 3
  359. jump 32
  360. !
  361. !
  362. !
  363. ! -- Normal exit after "CONNECT" --
  364. !
  365. !  This modem has been setup to do CTS handshaking,
  366. !  and we assume that a CTS handshaking cable is being used.
  367. !
  368. @LABEL 70
  369. ! Turn on CTS handshaking.
  370. HSReset 0 1 0 0 0 0
  371. !
  372. ifANSWER 71
  373. pause 30
  374. @LABEL 71
  375. exit 0
  376. !
  377. !
  378. !
  379. ! ---- Answer calls ----
  380. !
  381. !    A RING result from the modem and in ANSWERING mode
  382. !    claims the serial port and answering the phone
  383. !
  384. @LABEL 81
  385. ifORIGINATE 32
  386. !
  387. note "応答しています..." 2
  388. jump 32
  389. !
  390. ! Setup for answering calls
  391. !
  392. @LABEL 82
  393. matchclr
  394. matchstr 1 32  "OK¥13¥10"
  395. matchstr 2 101 "ERROR¥13¥10"
  396. write "ATS0=1¥13"
  397. matchread 30
  398. jump 101
  399. !
  400. !
  401. ! ---- Hang up and reset modem ----
  402. !
  403. @HANGUP
  404. @LABEL 90
  405. settries 0
  406. HSReset 0 0 0 0 0 0
  407. !
  408. @LABEL 92
  409. !  Escape from data to command mode
  410. matchclr
  411. matchstr 1 96 "OK¥13¥10"
  412. write "+++"
  413. matchread 20
  414. !
  415. @LABEL 94
  416. ! Force a hangup
  417. matchclr
  418. matchstr 1 98 "NO CARRIER¥13¥10"
  419. matchstr 2 98 "OK¥13¥10"
  420. matchstr 3 98 "ERROR¥13¥10"
  421. matchstr 4 98 "0¥13¥10"
  422. write "ATH¥13"
  423. matchread 30
  424. ! Try to get control of the modem by toggling DTR
  425. DTRClear
  426. pause 5
  427. DTRSet
  428. flush
  429. !
  430. ! Try the hangup sequence three times otherwise declare and error
  431. inctries
  432. iftries 3 101
  433. jump 92
  434. !
  435. @LABEL 96
  436. ! Pause between data and command mode
  437. pause 50
  438. jump 94
  439. !
  440. !
  441. @LABEL 98
  442. ! Recall the factory settings
  443. pause 15
  444. matchclr
  445. matchstr 1 99 "OK¥13¥10"
  446. write "AT&F¥13"
  447. matchread 30
  448. jump 101
  449. !
  450. @LABEL 99
  451. exit 0
  452. !
  453. ! ---- Error messages -----
  454. !
  455. ! Modem Not Responding
  456. @LABEL 101
  457. exit -6019
  458. !
  459. ! No Dial Tone
  460. @LABEL 102
  461. exit -6020
  462. !
  463. ! No Carrier or Error
  464. @LABEL 103
  465. exit -6021
  466. !
  467. ! Busy
  468. @LABEL 104
  469. exit -6022
  470. !
  471. ! No Answer
  472. @LABEL 105
  473. exit -6023
  474. !
  475. ! GeoPort/Express modem extended errors
  476. !
  477. @LABEL 106
  478. exit -6002 "モデムは使用中です"
  479. !
  480. @LABEL 107
  481. exit -6002 "ダイアルできません"
  482. !
  483. @LABEL 108
  484. exit -6002 "ブラックリスト番号です"
  485. !
  486. @LABEL 109
  487. exit -6002 "回線がつながっていません(Line Current Detected)"
  488. !
  489. @LABEL 110
  490. exit -6002 "回線がつながっていません(No Line Current)"
  491. !
  492. @LABEL 111
  493. exit -6002 "許可されていない番号です"
  494. !
  495. @LABEL 112
  496. exit -6002 "DAA なし"
  497. !
  498. @LABEL 113
  499. exit -6002 "不明な国番号です"
  500. !
  501. ! User Cancellation
  502. @LABEL 120
  503. exit -6008
  504.